#include "Heap.h"

void HeapSort(int* a,int n)
{

    for(int i = ( n - 1 - 1) / 2; i >= 0; i--)//向下调整建堆
    {
        Adjust_down(a,i,n);
    }

    int end = n - 1;

    while(end)
    {
        Swap(&a[0],&a[end]);
        Adjust_down(a,0,end);
        end--;
    }
}

void test()
{
    Heap h;
    int a[] = {6,3,5,7,9,2,1};
    HeapCreate(&h,a,7);
    HeapPrintf(&h);
    HeapSort(a,7);
    for(int i = 0; i < 7; i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n");

    // HeapInit(&h);
    // HeapPush(&h,6);
    // HeapPush(&h,3);
    // HeapPush(&h,5);
    // HeapPush(&h,7);
    // HeapPush(&h,9);
    // HeapPush(&h,2);
    // HeapPush(&h,1);
    // HeapPrintf(&h);
    
    // HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
    //     HeapPop(&h);
    // HeapPrintf(&h);
}

int main()
{
    test();
    return 0;
}




